package org.example.y25.m3;

import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;

public class lanqiao_19699 {
    public static void main(String[] args) {
//        Scanner scan = new Scanner(System.in);
//        //反向遍历
//        for (int i = 10000000; i > 0; i--) {
//            if (check(i)) {// i为目标则打印结果，并结束循环
//                System.out.println(i);
//                break;
//            }
//        }
//        scan.close();
//    }
//
//    /**
//     * 检查该数是否为类斐波那契循环数
//     */
//    public static boolean check(int x) {
//        String s = x + "";
//        // 获取位数
//        int l = s.length();
//        int[] dp = new int[l];
//        // 数x的每一位都拆出来存入数组
//        for (int i = 0; i < l; i++) {
//            dp[i] = s.charAt(i) - '0';
//        }
//        int sum = 0;
//        // 迭代数组检查该数是否为类斐波那契循环数
//        for (int i = l; sum < x; i++) {
//            sum = Arrays.stream(dp).sum();// 数组求和
//            dp[i % l] = sum;
//        }
//        // 跳出循环后sum >= x
//        return sum == x;
        int num = 9999999;
        int size = 6;
        int t = 0;
        while(t != num){
            int[] arr = new int[size];
            int n = num;
            for (int i = size - 1; i >= 0; i--,n /= 10) {
                arr[i] = n % 10;
            }
            while(t < num){
                for (int i = 0; i < size; i++) {
                    t += arr[i];
                }
                if (t > num){
                    break;
                } else if (t == num) {
                    System.out.println(t);
                    System.exit(0);
                }else{
                    for (int i = 0; i < size-1; i++) {
                        arr[i] = arr[i + 1];
                    }
                    arr[size -1] = t;
                    t = 0;
                }
            }
            t = 0;
            num--;
        }

    }
}
